﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using DingApi.Models;
using System.Data;

using System.IO;

using System.Web;
using Dingding.Helper;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NCommon;


namespace DingApi.Controllers
{
    [RoutePrefix("api/Paef01")]
    public class Paef01Controller : ApiController
    {   

        [HttpPost]
        [Route("PostPaef01_inq")]

        //多记录查询
        public System.Data.DataSet PostPaef01_inq([FromBody]  JObject obj)
        {
 
            

            //obj对象区分大小写的； obj["ASMAT_NAME"] 报错。
            EI.EIInfo inBlock = new EI.EIInfo();


            
  

            
            inBlock.Tables[0].Columns.Add("SPEC");
            inBlock.Tables[0].Columns.Add("ASMAT_NO");
            inBlock.Tables[0].Columns.Add("ASMAT_NAME");
            inBlock.Tables[0].Columns.Add("DPTMENT_CODE");


            
            inBlock.Tables[0].Columns.Add("REC_CREATE_TIME_FR");
            inBlock.Tables[0].Columns.Add("REC_CREATE_TIME_TO");
            inBlock.Tables[0].Columns.Add("REC_CREATOR");
           



           

            inBlock.Tables[0].Rows.Add();

            inBlock.sys_info.company_code = "LT";
            inBlock.sys_info.userid = obj["USERID"] == null ? " " : obj["USERID"].ToString();
            inBlock.sys_info.username = obj["USERNAME"] == null ? " " : obj["USERNAME"].ToString();
            inBlock.sys_info.formname = obj["FORMNAME"] == null ? " " : obj["FORMNAME"].ToString();

           

            inBlock.Tables[0].Rows[0]["SPEC"] = obj["SPEC"] == null ? " " : obj["SPEC"].ToString();
            inBlock.Tables[0].Rows[0]["ASMAT_NO"] = obj["ASMAT_NO"] == null ? " " : obj["ASMAT_NO"].ToString();
            inBlock.Tables[0].Rows[0]["ASMAT_NAME"] = obj["ASMAT_NAME"] == null ? " " : obj["ASMAT_NAME"].ToString();
            inBlock.Tables[0].Rows[0]["DPTMENT_CODE"] = obj["DPTMENT_CODE"] == null ? " " : obj["DPTMENT_CODE"].ToString();
            
            inBlock.Tables[0].Rows[0]["REC_CREATOR"]        = obj["REC_CREATOR"] == null ? " " : obj["REC_CREATOR"].ToString();
            inBlock.Tables[0].Rows[0]["REC_CREATE_TIME_FR"] = obj["REC_CREATE_TIME"] == null ? " " : obj["REC_CREATE_TIME"].ToString();
            inBlock.Tables[0].Rows[0]["REC_CREATE_TIME_TO"] = obj["REC_REVISE_TIME"] == null ? " " : obj["REC_REVISE_TIME"].ToString();

  
            

            //仅查询最近最近2天的；不然数据太多，影响小程序效率；
            if (inBlock.Tables[0].Rows[0]["REC_CREATE_TIME_FR"].ToString().Trim() == "")
            {
                inBlock.Tables[0].Rows[0]["REC_CREATE_TIME_FR"] = DateTime.Now.AddMonths(-1).ToString("yyyyMMddHHmmss");
            }

            if (inBlock.Tables[0].Rows[0]["REC_CREATE_TIME_TO"].ToString().Trim() == "")
            {
                inBlock.Tables[0].Rows[0]["REC_CREATE_TIME_TO"] = DateTime.Now.AddDays(1).ToString("yyyyMMddHHmmss");
            }
            
            EI.EIInfo outBlock = EI.EITuxedo.CallService("paef01_inq", inBlock);
            


            //小代码转换；
            EI.EIInfo outBlock_TEMP = EF.Utility.GetCodeClassValue("FIDP");
            DataTable dtTemp = null;

           // EI.EIInfo outBlock_TEMP2 = EF.Utility.ExecQuery("select t.STOCK_NO CODE ,t.stock_name as CODE_DESC_1_CONTENT from tsimm01 t");

           //EI.EIInfo outBlock_TEMP3 = EF.Utility.ExecQuery("select companycode CODE ,companyname CODE_DESC_1_CONTENT from es.tescompanyinfo ");
             

            for (int i = outBlock.Tables[0].Rows.Count - 1; i >= 0; i--)
            { 
                string DPTMENT_CODE = outBlock.Tables[0].Rows[i]["DPTMENT_CODE"].ToString();
                if (DPTMENT_CODE.Trim() != "")
                {
                    dtTemp = outBlock_TEMP.Tables["FIDP"].Select("CODE  = '" + DPTMENT_CODE + "'").CopyToDataTable<DataRow>();
                    outBlock.Tables[0].Rows[i]["DPTMENT_CODE"] = dtTemp.Rows[0]["CODE_DESC_1_CONTENT"];
                }

                //string ASMAT_USE_TYPE = outBlock.Tables[0].Rows[i]["ASMAT_USE_TYPE"].ToString();
                //if (ASMAT_USE_TYPE.Trim() != "")
                //{
                //    dtTemp = outBlock_TEMP.Tables["PA37"].Select("CODE  = '" + ASMAT_USE_TYPE + "'").CopyToDataTable<DataRow>();
                //    outBlock.Tables[0].Rows[i]["ASMAT_USE_TYPE"] = dtTemp.Rows[0]["CODE_DESC_1_CONTENT"];
                //}


                //string PA_RECEIPT_DATE = outBlock.Tables[0].Rows[i]["AUDIT_DATE"].ToString();
                //if (PA_RECEIPT_DATE.Length >= 8)
                //    outBlock.Tables[0].Rows[i]["AUDIT_DATE"] = PA_RECEIPT_DATE.Substring(0, 4) + "-" + PA_RECEIPT_DATE.Substring(4, 2) + "-" + PA_RECEIPT_DATE.Substring(6, 2);



                string REC_CREATE_TIME = outBlock.Tables[0].Rows[i]["REC_CREATE_TIME"].ToString();
                if (REC_CREATE_TIME.Length >= 8)
                    outBlock.Tables[0].Rows[i]["REC_CREATE_TIME"] = REC_CREATE_TIME.Substring(0, 4) + "-" + REC_CREATE_TIME.Substring(4, 2) + "-" + REC_CREATE_TIME.Substring(6, 2);
                
            }

            
            
            outBlock.Tables[0].TableName = "Table0";
            //系统信息；
            outBlock.Tables.Add("SYS");
            outBlock.Tables["SYS"].Columns.Add("FLAG");
            outBlock.Tables["SYS"].Columns.Add("MSG");
            outBlock.Tables["SYS"].Rows.Add(outBlock.sys_info.flag, outBlock.sys_info.msg);            
            return outBlock;


        }


        [HttpPost]
        [Route("PostPaef01_info")]

        //单记录查询
        public System.Data.DataSet PostPaef01_info([FromBody]  JObject obj)
        {

            EI.EIInfo outBlock = new EI.EIInfo();




            outBlock.Tables[0].Columns.Add("PIC_NUM");
            outBlock.Tables[0].Rows.Add(0);           

            //obj对象区分大小写的； obj["ASMAT_NAME"] 报错。
             string asmat_no = obj["ASMAT_NO"] == null ? " " : obj["ASMAT_NO"].ToString();

            
             var mapPath = "D:\\pic\\_PA\\" + asmat_no + "\\";

             
             if (Directory.Exists(mapPath))
             {
                 string[] file = Directory.GetFiles(mapPath,  "*");
                 outBlock.Tables[0].Rows[0]["PIC_NUM"] = file.Length;
             }





             outBlock.Tables[0].TableName = "TPIC";
            //outBlock.Tables[1].TableName = "T1";


            ////[增加主项]  T0 就是 TMAIN 
            //System.Data.DataSet  outBlock_main = PostPaef01_inq(obj);
            //outBlock_main.Tables[0].TableName = "TMAIN";
            //outBlock.Tables.Add(outBlock_main.Tables[0].Copy());
             
            //仓库
           
           

            //系统信息；
            outBlock.Tables.Add("SYS");
            outBlock.Tables["SYS"].Columns.Add("FLAG");
            outBlock.Tables["SYS"].Columns.Add("MSG");
            outBlock.Tables["SYS"].Rows.Add(outBlock.sys_info.flag, outBlock.sys_info.msg);
            return outBlock;


        }


        [HttpPost]
        [Route("PostPaef01_save")]

        //新增、修改、删除
        public System.Data.DataSet PostPaef01_save([FromBody]  JObject obj)
        {


            //obj对象区分大小写的； obj["ASMAT_NAME"] 报错。
            EI.EIInfo inBlock = new EI.EIInfo();





            inBlock.Tables[0].Columns.Add("DPTMENT_CODE");

            inBlock.Tables[0].Columns.Add("ASMAT_NO");
            inBlock.Tables[0].Columns.Add("ASMAT_NAME");
            inBlock.Tables[0].Columns.Add("SPEC");
            inBlock.Tables[0].Columns.Add("UNIT");
            inBlock.Tables[0].Columns.Add("ASSIST_UNIT");
            inBlock.Tables[0].Columns.Add("REMARK");
            inBlock.Tables[0].Columns.Add("DISABLE_FLAG");


            inBlock.Tables[0].Columns.Add("TMP_ASMAT_NO"); //后台需要

           



            inBlock.Tables[0].Rows.Add();

           
            inBlock.Tables[0].Rows[0]["DPTMENT_CODE"] = obj["DPTMENT_CODE"] == null ? " " : obj["DPTMENT_CODE"].ToString();

            inBlock.Tables[0].Rows[0]["ASMAT_NO"]       = obj["ASMAT_NO"] == null ? " " : obj["ASMAT_NO"].ToString();
            inBlock.Tables[0].Rows[0]["ASMAT_NAME"]     = obj["ASMAT_NAME"] == null ? " " : obj["ASMAT_NAME"].ToString();
            inBlock.Tables[0].Rows[0]["SPEC"]           = obj["SPEC"] == null ? " " : obj["SPEC"].ToString();
            inBlock.Tables[0].Rows[0]["UNIT"]           = obj["UNIT"] == null ? " " : obj["UNIT"].ToString();
            inBlock.Tables[0].Rows[0]["ASSIST_UNIT"]    = obj["ASSIST_UNIT"] == null ? " " : obj["ASSIST_UNIT"].ToString();
            inBlock.Tables[0].Rows[0]["REMARK"]         = obj["REMARK"] == null ? " " : obj["REMARK"].ToString();
            inBlock.Tables[0].Rows[0]["DISABLE_FLAG"]   = obj["DISABLE_FLAG"] == null ? " " : obj["DISABLE_FLAG"].ToString();
             

 
            string srv = obj["SRV"] == null ? " " : obj["SRV"].ToString();
            string check_state = obj["CHECK_STATE"] == null ? " " : obj["CHECK_STATE"].ToString();


            //块0为删除；
            //块1为新增
            //块2为修改
            EI.EIInfo inBlock2 = new EI.EIInfo();
            inBlock2.sys_info.company_code = "LT";
            inBlock2.sys_info.company_name = "龙腾特钢";

            inBlock2.sys_info.userid = obj["USERID"].ToString();
            inBlock2.sys_info.username = obj["USERNAME"].ToString();
            inBlock2.sys_info.formname = obj["FORMNAME"].ToString();


            inBlock2.Tables.Add();
            inBlock2.Tables.Add();

             if (srv.Contains("del"))
             {
                 //inBlock2.Tables.Add(inBlock.Tables[0].Copy());
                 inBlock2.Tables[0].Merge(inBlock.Tables[0].Copy());
             }
             else if (srv.Contains("ins"))
             {
                 //inBlock2.Tables.Add(inBlock.Tables[0].Copy());
                 inBlock2.Tables[1].Merge(inBlock.Tables[0].Copy());

             }
             else if (srv.Contains("upd"))
             {
                 //inBlock2.Tables.Add(inBlock.Tables[0].Copy());
                 inBlock2.Tables[2].Merge(inBlock.Tables[0].Copy());
             }


           

            //srv = "dcjl42_pass";
            //srv = "dcjl42_reback";


           EI.EIInfo outBlock = EI.EITuxedo.CallService("paef01_sav", inBlock2);
         






            //系统信息；
            outBlock.Tables.Add("SYS");
            outBlock.Tables["SYS"].Columns.Add("FLAG");
            outBlock.Tables["SYS"].Columns.Add("MSG");
            outBlock.Tables["SYS"].Rows.Add(outBlock.sys_info.flag, outBlock.sys_info.msg);
            return outBlock;

        }


     


        [HttpPost]
        [Route("PostPaef01_Load")]

        //高级查询的查询条件获取，【主要是各类小代码，类似之前画面的初始化参数】
        public System.Data.DataSet PostPaef01_Load([FromBody]  JObject obj)
        {           

            //小代码转换；
           
 
            //EI.EIInfo inBlock = new EI.EIInfo();

            //inBlock.sys_info.userid = obj["USERID"] == null ? " " : obj["USERID"].ToString();
            //EI.EIInfo outBlock = EI.EITuxedo.CallService("pasi01_inqck2", inBlock);
            //outBlock.Tables[0].Columns[0].ColumnName = "CODE";
            //DataRow dr3 = outBlock.Tables[0].NewRow();
            //dr3["CODE"] = " ";
            //dr3["CODE_DESC_1_CONTENT"] = " ";
            //outBlock.Tables[0].Rows.InsertAt(dr3, 0);
            //outBlock.Tables[0].TableName = "STOCK_NO";
            ////outBlock.Tables.Add(outBlock.Tables[0].Copy());


            EI.EIInfo outBlock = EF.Utility.GetCodeClassValue("FIDP");


            DataRow dr1 = outBlock.Tables[0].NewRow();
            dr1["CODE"] = " ";
            dr1["CODE_DESC_1_CONTENT"] = " ";
            outBlock.Tables[0].Rows.InsertAt(dr1, 0);
            

          



            //系统信息；
            outBlock.Tables.Add("SYS");
            outBlock.Tables["SYS"].Columns.Add("FLAG");
            outBlock.Tables["SYS"].Columns.Add("MSG");
            outBlock.Tables["SYS"].Rows.Add(outBlock.sys_info.flag, outBlock.sys_info.msg);
            return outBlock;


        }


        //[HttpPost]
        //[Route("PostPaef01_pro")]
 
    }
}